package edu.northwestern.cbits.purple_robot_manager.logging; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import edu.northwestern.cbits.purple_robot_manager.PurpleRobotApplication; import edu.northwestern.cbits.purple_robot_manager.R; import edu.northwestern.cbits.purple_robot_manager.plugins.DataUploadPlugin; public class LastUploadCheck extends SanityCheck { private static long WARN_DURATION = (1000 * 60 * 60 * 12); private static long ERROR_DURATION = WARN_DURATION * 2; public String name(Context context) { return context.getString(R.string.name_sanity_last_upload); } public void runCheck(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); PurpleRobotApplication.fixPreferences(context, false); if (DataUploadPlugin.uploadEnabled(context) == false) { this._errorLevel = SanityCheck.OK; return; } int pendingFiles = DataUploadPlugin.pendingFileCount(context); if (pendingFiles < 8) { this._errorLevel = SanityCheck.OK; return; } long now = System.currentTimeMillis(); long lastUploadTime = DataUploadPlugin.lastUploadTime(prefs); this._errorLevel = SanityCheck.OK; if (lastUploadTime == 0) { if (pendingFiles > 0) { this._errorLevel = SanityCheck.ERROR; this._errorMessage = context.getString(R.string.name_sanity_last_upload_never); } } else if (now - lastUploadTime > LastUploadCheck.ERROR_DURATION) { this._errorLevel = SanityCheck.WARNING; this._errorMessage = context.getString(R.string.name_sanity_last_upload_error); } else if (now - lastUploadTime > LastUploadCheck.WARN_DURATION) { this._errorLevel = SanityCheck.WARNING; this._errorMessage = context.getString(R.string.name_sanity_last_upload_warning); } } }